package com.mezz.bones.im.logic.domain.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 群组聊天记录表
 * </p>
 *
 * @author mezz
 * @since 2025-05-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "chat_group_message_record", autoResultMap = true)
@ApiModel(value="ChatGroupMessageRecord对象", description="群组聊天记录表")
public class ChatGroupMessageRecord implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "消息ID")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    @ApiModelProperty(value = "群组ID")
    private String groupId;

    @ApiModelProperty(value = "发送者ID")
    private String userId;

    @ApiModelProperty(value = "消息Key，用于标识单条消息")
    private String msgKey;

    @ApiModelProperty(value = "消息序列号，用于消息排序")
    private String msgSeq;

    @ApiModelProperty(value = "消息类型，0为普通用户消息，1为系统消息")
    private Integer msgType;

    @ApiModelProperty(value = "消息内容类型，如文本、音频、视频或自定义消息")
    private String contentType;

    @ApiModelProperty(value = "消息所属者是否已撤回，0为未撤回，1为已撤回")
    private Integer userRecalled;

    @ApiModelProperty(value = "消息所属者撤回时间")
    private Date userRecalledTime;

    @ApiModelProperty(value = "用户是否删除，0为未删除，1为已删除")
    private Integer userDel;

    @ApiModelProperty(value = "用户删除时间")
    private Date userDelTime;

    @ApiModelProperty(value = "系统删除操作人员")
    private String delBy;

    @ApiModelProperty(value = "系统删除时间")
    private Date delTime;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ApiModelProperty(value = "是否删除 0:否 1:是")
    private Integer isDel;


}
